home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Czech Logic, Card & Gambling Games
/
Logické hry.iso
/
hry
/
Fish Fillets
/
script
/
corals
/
code.lua
next >
Wrap
Text File
|
2005-07-16
|
9KB
|
254 lines
-- -----------------------------------------------------------------
-- Init
-- -----------------------------------------------------------------
local function prog_init()
initModels()
sound_playMusic("music/rybky14.ogg")
local pokus = getRestartCount()
-- -------------------------------------------------------------
local function prog_init_room()
local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
room.zvednout = 0
room.uvod = random(42) + 14
room.ahojkrabe = 0
room.pobliz = 0
room.nesahat = 0
room.bud = 0
room.rozhovor = 0
room.veselit = 0
return function()
if no_dialog() and isReady(small) and isReady(big) then
if room.zvednout == 0 and dist(big, valec) <= 1 and big.dir == dir_no and random(6) == 1 and valec.Y > 14 then
room.zvednout = 1
addv(4, "re-v-ocel")
elseif room.uvod <= 0 then
local bit_spi = {}
if krab.spi == 0 then
switch(random(10)){
[1] = function()
bit_spi[0] = true
bit_spi[2] = true
end,
[2] = function()
bit_spi[0] = true
bit_spi[2] = true
end,
[3] = function()
bit_spi[1] = true
bit_spi[3] = true
end,
[4] = function()
bit_spi[1] = true
bit_spi[3] = true
end,
[5] = function()
bit_spi[4] = true
bit_spi[5] = true
end,
[6] = function()
bit_spi[0] = true
bit_spi[2] = true
end,
[7] = function()
bit_spi[1] = true
bit_spi[3] = true
end,
[8] = function()
bit_spi[0] = true
bit_spi[4] = true
end,
[9] = function()
bit_spi[1] = true
bit_spi[2] = true
end,
[0] = function()
bit_spi[4] = true
end,
}
end
if bit_spi[0] then
addv(3 + random(9), "re-v-koraly0")
end
if bit_spi[1] then
addv(3 + random(9), "re-v-koraly1")
end
if bit_spi[2] then
addm(3 + random(9), "re-m-libi0")
end
if bit_spi[3] then
addm(3 + random(9), "re-m-libi1")
end
if bit_spi[4] then
addm(3 + random(9), "re-m-libi2")
end
if bit_spi[5] then
addv(3 + random(9), "re-v-pokoj")
end
room.uvod = 800 + random(300) + random(400)
elseif room.ahojkrabe == 0 and dist(small, krab) <= 1 and random(20) == 1 then
room.ahojkrabe = 1
addm(1, "re-m-ahoj")
elseif krab.spi == 0 and room.pobliz > 20 then
krab.spi = 1
elseif room.bud == 0 and room.pobliz > random(800) then
room.bud = 1
krab:planDialog(2, "re-k-budi")
if room.ahojkrabe == 0 and random(2) == 1 then
room.ahojkrabe = 1
addm(5, "re-m-ahoj")
end
elseif krab.dopad >= 1 and krab.dopad <= 10 then
krab.dopad = 1000
krab:planDialog(0, "re-k-au")
elseif room.nesahat == 0 and (krab.dir == dir_left or krab.dir == dir_right) then
room.nesahat = 1
if odd(game_getCycles()) then
room.bud = 1
end
krab:planDialog(0, "re-k-nesahej")
elseif room.pobliz == random(500) + 30 then
if odd(room.pobliz) then
krab:planDialog(5, "re-k-spim")
else
krab:planDialog(5, "re-k-otravujete")
end
elseif room.rozhovor == 0 and room.pobliz > 1 and random(333) == 1 then
room.rozhovor = 1
addm(7, "re-m-uzitecny"..random(2))
if odd(game_getCycles()) then
addv(7, "re-v-obejit")
else
addv(6, "re-v-nech")
addv(3, "re-v-nervozni")
end
elseif room.veselit == 0 and krab.spi > 0 and random(2000 + 100 * pokus) <= room.bud * 2 + room.nesahat * 2 + room.ahojkrabe + room.rozhovor then
room.veselit = 1
addm(10, "re-m-rozveselit")
addv(7, "re-v-nevsimej")
end
end
room.uvod = room.uvod - 1
if dist(big, krab) <= 1 or dist(small, krab) <= 1 then
room.pobliz = room.pobliz + 1
else
room.pobliz = 0
end
if math.mod(game_getCycles(), 3000) == 0 then
room.rozhovor = 0
end
end
end
-- -------------------------------------------------------------
local function prog_init_valec()
return function()
if valec.dir == dir_up then
room.zvednout = 1
end
end
end
-- -------------------------------------------------------------
local function prog_init_krab()
local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
krab.spi = 0
krab.dopad = 10000
return function()
if krab:isTalking() then
krab.spi = 1
end
if krab.spi == 0 then
if krab.dir == dir_no then
krab.afaze = 0
else
krab.spi = 1
end
elseif krab:isTalking() then
krab.afaze = math.mod(game_getCycles(), 4) + 2
elseif krab.dir == dir_down then
krab.afaze = random(9) + 1
else
anim_table = {
[99] = function()
krab.spi = 0
room.pobliz = -14 - random(50)
if random(2) == 1 then
room.ahojkrabe = 0
end
if random(2) == 1 then
room.nesahat = 0
end
if random(2) == 1 then
room.bud = 0
end
end,
[20] = function()
krab.afaze = 0
end,
[26] = function()
krab.afaze = random(4) + 2
end,
default = function()
krab.afaze = 1
end,
}
anim_table[21] = anim_table[20]
anim_table[22] = anim_table[20]
anim_table[23] = anim_table[20]
anim_table[24] = anim_table[20]
anim_table[25] = anim_table[20]
anim_table[27] = anim_table[26]
anim_table[28] = anim_table[26]
switch(math.mod(random(krab.spi), 100))(anim_table)
end
if krab.spi > 0 then
krab.spi = krab.spi + 1
end
if krab.dir == dir_down then
krab.dopad = 0
else
krab.dopad = krab.dopad + 1
end
krab:updateAnim()
end
end
-- --------------------
local update_table = {}
local subinit
subinit = prog_init_room()
if subinit then
table.insert(update_table, subinit)
end
subinit = prog_init_valec()
if subinit then
table.insert(update_table, subinit)
end
subinit = prog_init_krab()
if subinit then
table.insert(update_table, subinit)
end
return update_table
end
local update_table = prog_init()
-- -----------------------------------------------------------------
-- Update
-- -----------------------------------------------------------------
function prog_update()
for key, subupdate in pairs(update_table) do
subupdate()
end
end